*********************************************************************************###################
*******************************************+=----==+******************************##################
****************************************+-:.........:-=+*************************###################
**************************************=:........      ..:::-=+*******************###################
*************************************=:...               ..  .:=****************####################
************************************+:..               .:::.    .=**************####################
***********************************=. .:::.....   ...:-=====-:   .-*************####################
**********************************=. .--::::::..:::--=========-.  .-+***********####################
*********************************=. .-------::-----=====+======-....-**********#####################
********************************+: .-------------=======++=======:::.+********######################
********************************=. :---------===========+=+=======::.=********######################
********************************= .---------=========+++++++====+=-:.:*******#######################
****************************+++*- :--:------===========----=======-:..+******#######################
***********************+++++++++-.:--:::...::--====--::. ..::::==+=:..-*****########################
******************++++++++++++++=.:-:..:::....:--=--:::::::------==-. :*****########################
****************++++++++++++++++=..:::::::......:::::::.   ..:-==-=:  :*****########################
*************++++++++++++++++++++:.--::.:...:...-==-.:::..:-----=-=-:-=*****########################
***********++++++++++++++++++++++-.--::::::::: .-===.:--:--===++==+---+*****########################
*********+++++++++++++++++++++++-..----------:.:-===-:-=---=+++==++=:=******########################
*******+++++++++++++++++++++++++=:.---------:.::-=====-:-----===++==-:+****######################%%%
*****++++++++++++++++++++++++++++-.---:::::::::---=====-----====++====*****######################%%%
****+++++++++++++++++++++++++++===.:-------::::::--:::-------========+****#####################%%%%%
***++++++++++++++++++++++++++++===-:------:::::.:::--------:::-=====+****#####################%%#%%%
****+++++++++++++++++++++++++++====-----:.:::::::---------::::-===+******######################%%%%%
*****+++++++++++++++++++++++++=======---::....::::-----:. .---====+****########################%%%%%
*****+++++++++++++++++++++++++=======-::-::..  ..:------:-========*****##########################%%%
****+++++++++++++++++++++++++=========-:::::::::::----===========+****############################%%
****+++++++++++++++++++++++++==========-::::::::------=========--+**#############################%%%
***+++++++++++++++++++++++++============-:::-::-----==========--=+**#############################%%%
*+++++++++++++++++++++++++++=============-::------==========---=++*##############################%%%
+++++++++++++++++++++++++++===============-:::::------===-----==++*###############################%#
++++++++++++++++++++++++++===============+=-:..::------::::-====++*################################%
*++++++++++++++++++++++++================---:::........::--===+++++#################################
***++++++++++++++++++++==============+=:..:--:::::::::---===+++++++*################################
*****+++++++++++++++++==============+=-. ::-----::--======+++++++++=*###############################
******+++++++++++++++===============+=- .::---------==+++++++++++++=-*##############################
********+++++++++++================+++=- .::--------======++++++=++=-*##############################
***********+++++++++++++++++=======+++**=..::-------=====++++====+=-+###############################
************++++************+++=+*+++++**+:.::-----=====+=+=======-+################################
***********+++****************+=***++++++++====----=============-.=*################################
*********+*******************+==+****++=--=+***+--=============-=+*#*###############################
******++++*******************++====+*+=-==-=++***============+=*#*+==+*#############################
*++++++++***********************++********++=++***+=======--=+****+++++**###########################
++++++++++***********************************++****+====-=****######################################
++++++++++*****************************************++=-=+***########################################
++++++++++*********+***********+******************#*++*#############################################
++++++++++*********+*******************************+*###############################################
+++++*+++*++*******++****************************++*#*##############################################
+++++**++**+************************************++*#################################################
++++***++**++***********************************++##################################################
++++***++***+*****++****************************+*##################################################
++++***++***+****+++***************************++##########*########################################
++++***++***++***+++***************************++###################################################
++++****++**++**++++***************************+*###############################################*###
+++++***++***=+*+++++++************************+*########*#####################################**###
+++++****++**+=+=++++++*************************#####**##*#####################################**###
+*++++***++**+-=+++++++*************************#########**###################################***###